package cn.com.lsy.product.lepao.service;

import cn.com.lsy.product.lepao.model.entities.LpDataTotalTbl;
import cn.com.lsy.product.lepao.model.entities.LpStoreDataTotalTbl;
import cn.com.lsy.product.lepao.model.mt.entities.SelectStoreEnterInfoDto;
import cn.com.lsy.product.lepao.model.mt.entities.SelectStoreIncomeInfoDto;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

public interface IDataTotalService {

    //新注册用户
    BigDecimal selectNewRegisterTotal(String startTime, String endTime);

    //总入场
    BigDecimal selectEnterTotal(String startTime, String endTime, int storeId);

    //次卡入场
    BigDecimal selectDayCardEnterTotal(String startTime, String endTime, int storeId);

    //月卡入场
    BigDecimal selectMonthCardEnterTotal(String startTime, String endTime, int storeId);

    //优惠劵入场
    BigDecimal selectCouponEnterTotal(String startTime, String endTime, int storeId);

    //新增月卡
    BigDecimal selectNewMonthCardTotal(String startTime, String endTime);

    //交押金
    BigDecimal selectPaymentDeposit(String startTime, String endTime);

    //退押金
    BigDecimal selectRefundDeposit(String startTime, String endTime);

    //押金余额
    BigDecimal selectDepositBalance(String startTime, String endTime);

    //充值金额
    BigDecimal selectRecharge(String startTime, String endTime);

    //收入
    BigDecimal selectIncome(String startTime, String endTime, List<Integer> storeId);

    //次卡收入
    BigDecimal selectDayCardIncome(String startTime, String endTime, int storeId);

    //月卡收入
    BigDecimal selectMonthCardIncome(String startTime, String endTime);

    //门店月卡收入
    BigDecimal selectStoreMonthCardIncome(String startTime, String endTime, int storeId);

    //更新门店月卡收入
    boolean updateStoreMonthCardIncome(Date time, int storeId, LpStoreDataTotalTbl param);

    int delDataTotal(int id);

    int addDataTotal(LpDataTotalTbl param);

    List<LpDataTotalTbl> selectDataTotal(Date time);

    List<LpDataTotalTbl> selectByPage(int start, int end, String startTime, String endTime);

    int selectByCount(String startTime, String endTime);

    BigDecimal incomeSum(String startTime, String endTime);

    int selectUserEnterTotal(String startTime, String endTime);

    int delStoreDataTotal(Date startTime, Date endTime);

    int insertStoreDataTotal(List<LpStoreDataTotalTbl> param);

    List<LpDataTotalTbl> selectDataTotalList(int pageSize);

    List<LpStoreDataTotalTbl> selectStoreDataTotal(int storeId, int pageSize);

    //门店充值收入
    BigDecimal selectStoreRechargeIncome(String startTime, String endTime, int storeId);

    //门店月卡张数
    int selectStoreMonthCardNum(String startTime, String endTime, int storeId);

    //门店次卡张数
    int selectStoreDayCardNum(String startTime, String endTime, int storeId);

    //门店收益明细
    List<SelectStoreIncomeInfoDto> selectStoreIncomeInfo(String startTime, String endTime);

    //门店入场记录明细
    List<SelectStoreEnterInfoDto> selectStoreEnterInfo(String startTime, String endTime);
}
